www.gusucode.com > RQCMS PHP文章管理系统 v2.3PHP源码程序 > RQCMS PHP文章管理系统 v2.3/rqcms_v2.3/rqcms_v2.3/core/library/func.data.php
<?php //得到最新$num条$cateid分类的文章 function getLatestArticle($num,$cateid=0) { global $host; $cache=@include RQ_DATA.'/cache/latest_'.$host['hid'].'.php'; $cateadd=$cateid?" where cateid in ({$cateid})":''; $sql='SELECT * FROM `'.DB_PREFIX."article` $cateadd ORDER BY aid DESC limit $num"; $arr=getCacheDB($cache,$num,$cateid,$sql); rsort($arr); return $arr; } //得到置顶的$num条$cateid分类文章 function getStickArticle($num,$cateid=0) { global $host; $cache=@include RQ_DATA.'/cache/stick_'.$host['hid'].'.php'; $cateadd=$cateid?" and cateid in ({$cateid})":''; $sql='SELECT * FROM `'.DB_PREFIX."article` where stick=1 $cateadd ORDER BY aid DESC limit $num"; return getCacheDB($cache,$num,$cateid,$sql); } //得到热门文章 function getHotArticle($num,$cateid=0) { global $host,$DB; $cache=@include RQ_DATA.'/cache/hot_'.$host['hid'].'.php'; $cateadd=$cateid?" where cateid in ({$cateid})":''; $sql='SELECT * FROM `'.DB_PREFIX."article` $cateadd ORDER BY views DESC limit $num"; return getCacheDB($cache,$num,$cateid,$sql); } //得到相关文章,是从本站查询的 function getRelatedArticle($aid,$tagarr,$num) { global $DB,$host; $articledb=array(); $tag="'".implode("','",$tagarr)."'"; $query=$DB->query('Select * from '.DB_PREFIX."tag where tag in ($tag)"); $aidarr=array(); while($aq=$DB->fetch_array($query)) { $dbaids=explode(',',$aq['aids']); $aidarr=array_merge($aidarr,$dbaids); } if(!empty($aidarr)) { $aidarr=array_unique($aidarr); unset($aidarr[$aid]); shuffle($aidarr); if(count($aidarr)>$num) $aidarr=array_slice($aidarr,0,$num); $aids=implode_ids($aidarr); $query=$DB->query('Select * from '.DB_PREFIX."article where aid in ($aids) order by aid"); while($article=$DB->fetch_array($query)) { $articledb[]=showArticle($article); } shuffle($articledb); } return $articledb; } //得到某个分类的文章列表 function getCateArticle($cateids,$page) { global $DB,$hostid,$host,$category; $pagenum = intval($host['list_shownum']); $start_limit = ($page - 1) * $pagenum; $catesql=$cateids==0?'':"WHERE `cateid` in ($cateids)"; $sql = "SELECT * FROM ".DB_PREFIX."article $catesql ORDER BY aid DESC LIMIT $start_limit, ".$pagenum;//exit($sql); $articledb=array(); $query=$DB->query($sql); while($article=$DB->fetch_array($query)) { $articledb[]=showArticle($article); } return $articledb; } //得到符合条件的文章,包含附件 function getArticle($url) { global $DB,$hostid,$host; $sql = "SELECT * FROM ".DB_PREFIX."article WHERE url='$url' limit 1"; $article=$DB->fetch_first($sql); if(!empty($article)) { $cindex=ceil($article['aid']/500000); $sql="SELECT * FROM ".DB_PREFIX."content{$cindex} WHERE articleid={$article['aid']} limit 1"; $article2=$DB->fetch_first($sql); $article=array_merge($article,$article2); $article=showArticle($article); $articleid=$article['aid']; //处理附件 if ($article['attachments']) { $attachs=getAttachById($articleid); if (isset($attachs[$articleid])&&is_array($attachs[$articleid])) { $article['attachments']=array(); foreach($attachs[$articleid] as $aid=>$attach) { $article['attachments'][$aid]=$attach; $article['attachments'][$aid]['downloads']=$attach['downloads']; $article['attachments'][$aid]['filesize']=(int)($attach['filesize']/1024); $argurl=mkUrl('attachment',$aid); if($attach['isimage']) { $file="<a href='{$argurl}' target='_blank'><img src='{$argurl}' alt='{$attach['filename']}'></a>"; } else { $file="<a href='{$argurl}' target='_blank'>{$attach['filename']}</a>"; } if(strpos($article['content'],"[attach=$aid]")!==false) { $article['content']=str_replace("[attach=$aid]",$file,$article['content']); unset($article['attachments'][$aid]);//加在文章中后就不用在后边显示了. } else { $article['attachments'][$aid]['aurl']=$argurl; } } //print_r($article['attachments']);exit; } } if(!empty($article['tag'])) $article['tag']=explode(',',$article['tag']); } return $article; } //按id得到附件 function getAttachById($aids) { global $DB,$host; $attacharr=array(); $downloads=$DB->query('select * from '.DB_PREFIX."attachment where articleid in (".$aids.')'); while($dds=$DB->fetch_array($downloads)) { $attacharr[$dds['articleid']][$dds['aid']]=$dds; } return $attacharr; } //得到上一篇文章和下一篇文章 function getPreNextArticle($aid) { global $DB,$host; $data=array(); $preArr=$DB->fetch_first('Select max(aid) from'.DB_PREFIX."article where aid<$aid limit 1"); $nextArr=$DB->fetch_first('Select min(aid) from'.DB_PREFIX."article where aid>$aid limit 1"); if(empty($perArr)&&empty($nextArr)) return $data; if(!empty($preArr)) { $preid=$preArr['max(aid)']; $data['Pre']=$DB->fetch_first('Select * from '.DB_PREFIX.'article where aid=$perid'); $data['Pre']=showArticle($data['Pre']); } if(!empty($nextArr)) { $nextid=$nextArr['max(aid)']; $data['Next']=$DB->fetch_first('Select * from '.DB_PREFIX.'article where aid=$nextid'); $data['Next']=showArticle($data['Next']); } return data; } function getArticleByAid($query) { global $DB; $articledb=array(); $aidarr=array(); while($aid=$DB->fetch_array($query)) { $aidarr[]=$aid['aid']; } if(count($aidarr)>0) { $aids=implode_ids($aidarr); $query=$DB->query('Select * from '.DB_PREFIX."article where aid in ($aids)"); while($article=$DB->fetch_array($query)) { $articledb[]=showArticle($article); } } return $articledb; } //得到最新$num条搜索的记录 function getLatestSearch($num) { global $host; $latestarray=@include RQ_DATA.'/cache/search_'.$host['hid'].'.php'; if(!empty($latestarray)) { if(count($latestarray)>$num) $latestarray=array_slice($latestarray, 0, $num); } return $latestarray; } //先缓存中得数据,不够再查数据库 function getCacheDB($cache,$num,$cateids,$sql) { global $DB; $articledb=array(); $catearr=explode(',',$cateids); foreach($catearr as $cateid) { if(isset($cache['aids'][$cateid])) { foreach($cache['aids'][$cateid] as $aid) { $articledb[$aid]=$cache['data'][$aid]; } } } if($num>20&&count($articledb)<$num) //少于的话查询一下数据库 { $articledb=array(); $files= $DB->query($sql); while ($fs = $DB->fetch_array($files)) { $articledb[]=showArticle($fs); } } else if(count($articledb)>$num) { $articledb=array_slice($articledb, 0, $num); } return $articledb; }